Small Computer System Interface (SCSI) refers to a standard interface and command set for transferring data between devices on both internal and external computer buses. SCSI is commonly used for hard disks and tape storage devices, but can also be used to connect a wide range of other devices, including scanners, printers, CD-ROM drives, CD recorders, and DVD drives. More generally, the SCSI standard promotes device independence, suggesting that SCSI can be used with any type of computer hardware. Despite these advantages, SCSI's physical interface substantially restricts separation between SCSI connected devices due to a maximum allowable cable length.
A variation of SCSI, referred to as Internet SCSI (iSCSI), represents another standard protocol that enables the use of the SCSI protocol with unrestricted device separations using TCP/IP networks. The iSCSI protocol uses the SCSI command set and transmits SCSI commands over the Internet. Beneficially, the iSCSI protocol is a connection-oriented, point-to-point protocol that guarantees delivery order with a streaming interface. Thus, the TCP/IP encapsulation eliminates any distance limitations of the SCSI physical interface by allowing an iSCSI-capable initiator at one end of a network to access an iSCSI-capable target at another end of the network. In iSCSI storage applications, the servers are commonly referred to as initiators and the storage devices as targets.
Storage Area Networks (SANs) are designed to attach storage devices, such as disk array controllers and tape libraries, to hosts or servers running applications for accessing the stored data. Preferably, SANs provide some level of flexibility with several benefits, such as consolidating storage resources, providing storage-on-demand, increasing application availability, improving preparedness for disaster recovery, and increasing return on investment.
Additional benefits can be achieved through virtualization of the SAN. Generally, virtualization in a storage area network describes a software abstraction that separates a storage resource and its use from the underlying physical machine. Virtualization provides administrators with a powerful tool for configuring and distributing physical storage resources among multiple hosts. Internet Protocol (IP) networks generally were not designed with virtualization in mind. Consequently, virtualization has had limited penetration into iSCSI-based SANs. A current virtualization implementation for iSCSI introduces a virtualization appliance between iSCSI initiators and iSCSI targets. This virtualization appliance, however, becomes a bottleneck. Moreover, this implementation does not scale well: adding additional iSCSI initiators and iSCSI targets to the storage area network only exacerbates the bottleneck problem.